home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / PowerD / powerd / source / lib / powerd_lib.lha / PowerD_PPC / StrCmpNC.ass < prev    next >
Text File  |  2001-04-24  |  550b  |  39 lines

  1.  
  2. # StrCmpNC(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=-1:LONG)
  3.  
  4.     .text
  5.     .global    _StrCmpNC
  6.  
  7. _StrCmpNC:
  8.     subi    r3,r3,1
  9.     subi    r4,r4,1
  10. .loop:    lbzu    r7,1(r3)
  11.     lbzu    r6,1(r4)
  12.     cmplwi    r7,91
  13.     bgt    .next1
  14.     cmplwi    r7,65
  15.     blt    .next1
  16.     addi    r7,r7,32
  17. .next1:
  18.     cmplwi    r6,91
  19.     bgt    .next2
  20.     cmplwi    r6,65
  21.     blt    .next2
  22.     addi    r6,r6,32
  23. .next2:
  24.     cmpw    r6,r7
  25.     bne    .nosame        # strings are different
  26.     mr.    r7,r7        # zero (eos) byte?
  27.     beq    .same
  28.     subi    r5,r5,1
  29.     mr.    r5,r5
  30.     bne    .loop
  31.  
  32. .same:    li    r3,-1
  33.     b    .finish
  34. .nosame:    li    r3,0
  35. .finish:    blr
  36.  
  37.     .type    _StrCmpNC,@function
  38.     .size    _StrCmpNC,$-_StrCmpNC
  39.